package com.example.demo20220702.schedule.quaetzSchedule;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;

/**
 * 定时作业器
 * 官方文档：http://www.quartz-scheduler.org/documentation/  官网入门demo：http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html
 * 2022年7月2日  version：2.3.0
 * 1.添加依赖
 * 2.添加配置文件
 * 3.创建任务类（RenWu1）
 * 4.编写如下方法
 */
public class QuartzSchedule {
    public void test01() {
    }

    public static void main(String[] args) {

        try {
            // 本次任务分组以及取名
            JobDetail job = newJob(RenWu1.class)
                    .withIdentity("job1", "group1")
                    .build();

            // 创建一个触发器取名并分组
            Trigger trigger = newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(simpleSchedule()
                            .withIntervalInSeconds(5)
                            .repeatForever())
                    .build();

            // 从工厂中获取调度器实例
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
            // 开始任务
            scheduler.start();
            // 告诉干活的实例哪个触发器哪个任务
            scheduler.scheduleJob(job, trigger);
//            结束任务  有这句任务一次都不会执行
//            scheduler.shutdown();
        } catch (SchedulerException se) {
            se.printStackTrace();
        }
    }

}
